<?php 
//视图模型
//视图是虚拟表，把一些表的相关字段进行组合
namespace Home\Model;
use Think\Model;
class WeiboModel extends Model {
        protected $tableName = 'weibo';
	public $viewFields = array(
		//定义要准备的表和取出的字段
		'weibo'=>array('id','content','isturn','time','turn','keep','comment','uid',
			//右连接userinfo
			'_type'=>'LEFT'
		),
		'userinfo'=>array('username','face50'=>'face',
			//连接后的消积的查询条件
			//用户的id等于微博和uid
			'_on'=>'weibo.uid=userinfo.id','_type'=>'LEFT'),
		'picture'=>array('mini','medm','max','_on'=>'weibo.id=picture.wid')
	);
	//查询所有记录
	public function getAll($where){
		$result=$this->join('weibo_userinfo as u ON weibo_weibo.uid=u.uid','LEFT')->join('weibo_picture as c ON weibo_weibo.id=c.wid','LEFT')->field('weibo_weibo.*,u.userName,u.face50,c.mini,c.medm,c.max')->where($where)->order('time desc')->select();
		//重组结果集，得到转发微博的容
		if ($result) {
			foreach($result as $k=>$v){
				//如果是转发的微博就把isturn字段存储被转发微博的的此视图表信息
				if($v['isturn']){
					//转发微博的微博视图信息
					$tmp=$this->join('weibo_userinfo as u ON weibo_weibo.uid=u.uid','LEFT')->join('weibo_picture as c ON weibo_weibo.id=c.wid','LEFT')->field('weibo_weibo.*,u.userName,u.face50,c.mini,c.medm,c.max')->where(array('weibo_weibo.id'=>$v['isturn']))->find();
					//转发微博的微博视图信息为空，-1代表些微博以被删除
					$result[$k]['isturn']=$tmp?$tmp:-1;
				}
			}
		}
		return $result;
	}
}
 ?>
